The Custom Properties window

  • The Custom Properties window can be opened in your current Job only if the " Flavor " that was selected at the time your current Job was created was a legacy flavor .
  • For modular custom properties, the Edit Properties window -- not this window -- is the window that opens.
  • This window may be populated with custom properties for members or materials or bolts or holes or welds or your current Job -- click here .

Tabs on the member properties window if a legacy flavor was selected as the " Flavor " when the project was created :

General
Custom Properties
User
Custom Properties
Notes
Log ( )
  • Member custom property tabs like those shown above are created by the /custom/Member.py file found in your current Job.

Tabs on the material, jobs, bolts, holes and welds custom properties windows :

Properties
Notes
Log ( )
  • For material properties, etc., three tabs like above are shown regardless of the legacy flavor that was selected at project creation time.
  • For Job custom properties, information under the " Properties " tab may, depending on the legacy flavor , be entered to the /custom/Job.py script.
  • No Python script is used for material, bolts, holes or welds custom properties.
  • For material custom properties, you can Add Schema Entry and your entry will appear on this window immediately.

About this window :

Also see :


To open the Custom Properties window :

For your current Job:

  • The custom properties window for your current Job opens when you choose Home > Project Settings > Job > Job Property Settings .
  • The name of the custom properties window for your current Job is Job Custom Properties .

For group members:

  • In Modeling , open the Group Member Edit window, then press the " Properties " button on that window. The properties that you set affect the group member only -- they do not affect submembers. Group members employ the member schema that are set up at Home > Project Settings > Job > Custom Properties > Member Properties .
  • The name of the custom properties window for a group member is Member Custom Properties .

For members:

For materials:

  • Do a multi-material edit or edit one material . Press the " Properties " button at the bottom of the General Information window, which can be opened from any of the material edit windows.
  • You cannot assign custom properties when you first Add a material.
  • In the Drawing Editor , you can review the custom properties of a material using Review 2D Items , or double-clicking a material, then pressing the " General Information " button, then pressing the " Properties " button.

For bolts :

For holes :

For welds :


Properties
General
Custom Properties
User
Custom Properties
Notes
Log
  • A " Properties " tab appears on this window -- even for member custom properties -- when ' None ' was selected the legacy flavor at the time that this Project was created.
  • For custom properties other than Job custom properties, you can add a new custom property (option) to this tab without having to mess with editing a Python script. For Job custom properties, the Python script you will need to adjust is the /custom/Job.py file in your current Job.
  • To, for example, add a new option for material under the " Properties " tab, all you have to do is choose Home > Project Settings > Job > Custom Properties > Material Properties , then press " Add " on the Edit Schema window. After you then make an entry on the Add Schema Entry window, you can re-open this window (edit a material, press " General Information " then press " Properties ") and you will find that your new custom property has been added to this tab.
  • To add a custom property, " Home > Project Settings > Job > Custom Properties > (" Job Properties " or " Member Properties " or " Material Properties " or etc.). The Edit Schema window will open. On it you can press the " Add " button to add a schema entry.
  • A new custom property added in setup is available to all items in its class that reside in the model. For example, a newly added member custom property is available to all members. However, when you go to the model and edit that custom property, your change will only apply to the specific material(s) or etc. that you are editing.
  • Entries to a custom property can be a ' String ' (allows any characters) or ' Number ' (allows decimals, whole numbers or fractions) or " Boolean " (checked = Yes or 1 or True; not checked = No or 0 or False) or ' Dimension ' (allows dimensions) or ' Date ' (allows dates).
  • Data entered here can be tracked using the Report Writer .
Data class Path in Report Writer 
current Job CurrentLocation.JobCustomProperties
member Member.CustomProperties
material MemberMaterial.Material.CustomProperties
hole MemberMaterial.Material.SubMaterial.
Hole.CustomProperties
bolt MemberMaterial.Bolt.CustomProperties
weld MemberMaterial.Weld.CustomProperties
  • Status Display can color code, mask or isolate members or materials for which custom properties have been entered:
Data class In Status Display , choose:
member Member status > Member custom property
material Material status > Material custom property
# Prints the entry to the member property named 'Painted'.
from member import MemberLocate, MemberProperties
from param import ClearSelection
mem = MemberLocate("Select a member")
mem_prop = MemberProperties(mem)
print(mem_prop['Painted'])
ClearSelection()
# Prints the entry to the material property named 'GALV'.
from mtrl_list import MtrlLocate, MtrlProperties
mtrl = MtrlLocate("Select a material", "Single")
mtrl_prop = MtrlProperties(mtrl)
print(mtrl_prop['GALV'])
# Prints entries to Job properties named 'Architect', 'EOR'.
from job import JobProperties
job_prop = JobProperties() # no argument, current Job
print("Architect: ", job_prop['Architect'])
print("Engineer: ", job_prop['EOR'])
# Enters "John Doe" to member property "modeled_by".
from member import MemberLocate, MemberPropertySet
from param import ClearSelection
mem1 = MemberLocate("Select a member")
MemberPropertySet(mem1, "modeled_by", "John Doe")
ClearSelection()
# "modeled_by" must be a member property for this to work
# Enters "True" to boolean material property "GALV".
from mtrl_list import MtrlLocate, MtrlPropertySet
mtrl = MtrlLocate("Select a material", "Single")
MtrlPropertySet(mtrl, "GALV", "True")
# "GALV" must be a material property for this to work
# Enters "Sparky_Silvershoes" to Job property "EOR".
from job import JobPropertySet
JobPropertySet("EOR", "Sparky_Silvershoes")
# "EOR" must be a Job property for this to work
  • Advanced Selection can be used to select members, materials, etc. with custom properties:
# Selects members with John Doe entered to "modeled_by".
m.CustomProperties["modeled_by"] == "John Doe"
# Selects members with 1 1/4 entered to "parametric_offset".
m.CustomProperties["parametric_offset"] == 1.25
# Selects materials checked for "GALV".
mt.CustomProperties["GALV"] == True


Properties
General
Custom Properties
User
Custom Properties
Notes
Log

  • If ' ElectronicApproval ' is the " Flavor " of custom properties and you are editing a member, you will get " General Custom Properties " tabs like those shown at left.
  • Be aware that certain entries for members (members only) may cause member piecemarks to break apart. To see if such is the case, go to setup and click the appropriate type of schema (' Member ') to open the Edit Schema window. Press " Details " to see if " Use to split piecemarks " is checked.
  • Other entries (for members only) may cause that entry to appear in the " Remarks " column in line 1 of the associated member bill of material. To see if such is the case, go to setup and click the appropriate type of schema (' Member ') to open the Edit Schema window. Press " Edit " to see if " Add to BOM " is checked.
  • You can use setup to add new options to this tab just like you can for the " Properties " tab. However, unlike for the " Properties " tab, those options will not show up immediately. To make new member custom properties show up in this tab, you first need to edit the /custom/Member.py file found in your current Job. Click here for more information.

Properties
General
Custom Properties
User
Custom Properties
Notes
Log
  • A " User Custom Properties " tab may appear on this window when a legacy flavor was selected as the custom property " Flavor " at project creation time.
  • " User Custom Properties " may be available when you opened this window by pressing the " Properties " button at the bottom of a member edit window. In other words, " User Custom Properties " are member custom properties.
  • You can use setup to add new options to this tab just like you can for the " Properties " tab. However, unlike for the " Properties " tab, those options will not show up immediately. To make new member custom properties show up in this tab, you first need to edit the /custom/Member.py file found in your current Job. Click here for more information.
  • Here is the section in the /custom/Member.py file that you need to modify in order to get an option added to this window. Remember, you first need to add the schema entry in the Add Schema Entry window for members before you enter it to the script:
## User Custom Properties Begin
# Please add your custom Properties in this area.
User_tab = Tab( Main_tabset, " User\n Custom Properties " );
User_tabset = Tabset( User_tab )
User_tabset.widget.configure( tiers = 1 )
User_tabset.widget.configure( borderwidth=3, side = "left", font=TabFont, fg=Color_Dark_Blue, bg=Color_SelectedTab)
## User Custom Properties End

Properties
General
Custom Properties
User
Custom Properties
Notes
Log
  • Type in any notes that you want applied to the item (Job, member, material, hole, bolt, weld) that you are editing.
  • Press the " Time Stamp " button to automatically stamp the date and time of a note.
Time stamp example:   2007-02-05 14:08:55-0600
  2007-02-05 = the date (year-month-day)
14:08:55 = military time (hour:minutes:seconds)
  -0600 = offset from Greenwich Mean Time (GMT)
  • Notes can be tracked in the report writer:
Data class Path in Report Writer  
current Job CurrentLocation.JobCustomProperties.Notes
member Member.CustomProperties.Notes
material MemberMaterial.Material.CustomProperties.Notes
hole MemberMaterial.Material.SubMaterial.
Hole.CustomProperties.Notes
bolt MemberMaterial.Bolt.CustomProperties.Notes
weld MemberMaterial.Weld.CustomProperties.Notes
  • Status Display can color code, mask or isolate members or materials for which notes have been entered:
Data class In Status Display , choose:
member Member status > Member notes
material Material status > Material notes
# Prints the user notes of the member that the user selects.
from member import MemberLocate, MemberProperties
from param import ClearSelection
mem = MemberLocate("Select a member")
mem_note = MemberProperties(mem)
print(mem_note['Notes'])
ClearSelection()
# Prints the user notes of the material that the user selects.
from mtrl_list import MtrlLocate, MtrlProperties
mtrl = MtrlLocate("Select a material", "Single")
mtrl_note = MtrlProperties(mtrl)
print(mtrl_note['Notes'])
# Prints the user notes of your current Job.
from job import JobProperties
job_note = JobProperties() # no argument, current Job
print(job_note['Notes'])
# Writes a "Note" for the member that the user selects.
from member import MemberLocate, MemberPropertySet
from param import ClearSelection
mem1 = MemberLocate("Select a member")
MemberPropertySet(mem1, "Notes", "Refer to RFI 32")
ClearSelection()
# Writes a "Note" for the material that the user selects.
from mtrl_list import MtrlLocate, MtrlPropertySet
mtrl = MtrlLocate("Select a material", "Single")
MtrlPropertySet(mtrl, "Notes", "ABM page-line 14-2")
# Writes a Note for the current Job.
from job import JobPropertySet
JobPropertySet("Notes", "Note RFIs 22, 32, 43.")

Properties
General
Custom Properties
User
Custom Properties
Notes
Log

VIDEO All options in Event Logging Setup were turned on at the time that the Job featured in this video was created. The video shows event records found under the " Log " tab for job custom properties and the " Log " tab for member custom properties. (Recorded in SDS2 Detailing , v2015.)

VIDEO A bent plate pour stop is added, and two Cope operations followed by Add Holes with Match Holes are performed on the new material. The Custom Properties " Log " tabs for the bent plate material and for one of the bolts are then reviewed to verify that these events were recorded. (Recorded in SDS2 Detailing , v2015.)

  • Classes of events that can be logged are Job events , member events , material events , bolt events , weld events , hole events .
  • Some special cases: Hole events such as the adding, deletion or editing of a hole are recorded to the material log. The deletion or undeletion of members is recorded to the Job log. More special cases are noted in the documentation for the Event Logging Setup window.
  • The Event Logging Setup window sets what information is logged. That is, it turns event logging on/off for your entire site for specific categories of recordable events.
  • Once an event has been logged, it stays logged until the event log is cleared using the Delete Event Logging utility. Turning event recording off using Event Logging Setup does not clear a log. To clear a log, you need to use the Delete Event Logging utility.
  • Events that are logged include the date of the event ( 2015-08-05 ), military time-GMT offset ( 14:08:55-0600 ), SDS2 software version ( 2015.05 ), log-in name of the person who made the change ( dave ), and the event ( Member processed ).
  • Logged events can be tracked in the report writer:
Data class Path in Report Writer
current Job CurrentLocation.JobCustomProperties.Log
member Member.CustomProperties.Log
material MemberMaterial.Material.CustomProperties.Log
hole MemberMaterial.Material.SubMaterial.
Hole.CustomProperties.Log
bolt MemberMaterial.Bolt.CustomProperties.Log
weld MemberMaterial.Weld.CustomProperties.Log
# Prints the event log of the member that the user selects.
from member import MemberLocate, MemberProperties
from param import ClearSelection
mem1 = MemberLocate("Select a member")
mem_log = MemberProperties(mem1)
print(mem_log['Log'])
ClearSelection()
# Prints the log of the material that the user selects.
from mtrl_list import MtrlLocate, MtrlProperties
mtrl = MtrlLocate("Select a material", "Single")
material_log = MtrlProperties(mtrl)
print(material_log['Log'])
# Prints the event log of your current Job.
from job import JobProperties
job_log = JobProperties() # no argument, current Job
print(job_log['Log'])

To close Custom Properties :

"Save" (or the Enter key) closes the Custom Properties window and saves the settings on it to your current Job .

"Cancel" closes this window without saving any changes that you have made.

"Reset" undoes all changes made to settings on this window since you first opened it. The window remains open.